|
 |
|
|
|
|
|
HTMLEdit 3.0 Changelog
Build 94 (October 29, 2008)
-
MAJOR UPGRADE: Added support for Delphi 2009.
-
Bugfix: Fixed a memory leak in the SmartTag subsystem and a leak that occurred
when the component was terminated while an image was selected.
Build 93 (September 22, 2008)
-
Added support for superscript and subscript elements (sub/sup). These elements
are spans and can be accessed in the same way other spans can be accessed. New
default actions are also available. The diplay of superscript and subscript text
is implemented through CSS's relative positioning mechanism. Please note that
different browsers (e.g. FF3 and IE7) do not necessarily display text in sub/sup
elements in the same way. So if you want to achieve true WYSIWYG you might have
to change the values for the attributes top, bottom and font-size in your stylesheet
so that they match the defaults of the browser of your choice.
-
Added the new property SelectedImage.Title for accessing the image element's "title"
attribute (e.g. '<img [...] title="This is the new title!" />').
Firefox displays the value of this attribute when the user hovers over the image
with the mouse cursor (instead of the "alt" attribute).
-
Bugfix: The body background color was not interpreted correctly when it was specified
through the body start tag's "class" or "style" attribute.
-
Bugfix: If the HTML clipboard contained a fragment of a block (without the block's
start or end tag) and the fragment contained a span start tag then a line break
was createdduring pasting from the clipboard.
-
Bugfix: Fixed three memory leaks; one related to the parser and two related to
tables.
-
Bugfix: Fixed a wide-character to ansi-character conversion bug that occured during
typing in characters in some eastern european languages.
-
Bugfix: The CSS attribute "border-style" was not interpreted correctly
under some circumstances because of a constant naming collision (the integer constant
"BS_SOLID" also exists in the Windows API with a different value).
-
The uninstaller now removes the directories from Delphi's library path that were
added during installation.
Build 92 (August 15, 2008)
-
Added support for various new ways to specify the font size. Previously, only
the units "pt" and "px" were supported. Now the font size
can be specified as a percentage (e.g. "font-size:150%") or using one
of the following units: EM, EX, PX, IN, CM, MM, PT or PC.
-
IMPORTANT: The record "TpsFontSize"
had to be modified to accommodate the newly supported font size types. The field
"Size" now has the type "real" instead of "integer".
It's not a major change but it will break some existing code. The method "GetCurrentFontSize",
for example, returns such a record. So please take this fact into account when
upgrading to the new build.
-
The new class method "TpsCSSFontSizeAttribute.FontSizeToString" returns
a TpsFontSize value in the form of a string.
-
Certain characters (such as '<', '>') were encoded using character references
(such as '<' and '>'). A number of characters that could have been
represented using the document's character encoding were nevertheless represented
with character references. Characters are now encoded more flexibly. If an imported
character (imported during document loading) was stored as a character reference
then it is also exported as a reference. Certain characters that must be encoded
as references because of HTML (such as '<' and '>) are always encoded as
references. Finally, if a character cannot be represented using the document's
character encoding then it will be represented as a reference.
-
Added support for the unicode text clipboard (i.e. clipboard format "CF_UNICODETEXT").
-
Setting the property "CurrentBlock.BlockClass" to an empty string now
deletes the block start tag's "class" attribute instead of merely clearing
its value ('<p class="some_class">' => '<p>').
-
Bugfix: The method "GetCurrentFontSize" did not take the current block's
class attribute into account when calculating the current font size. The same
was true for the property "CurrentBlock.FontSize". The block's class
attribute was also not taken into account when determining font family, font color
and background color. The affected methods are "GetCurrentFontFamily",
"GetCurrentFontColor", "GetCurrentBackgroundColor". The affected
properties are "FontFamily", "FontColor" and "BackgroundColor"
(all belonging to the CurrentBlock property).
-
Bugfix: A number of methods caused errors when they were called without the presence
of a current block (there is no current block when an image is selected, for example).
These methods were: "PutSpanAroundCursor", "InsertSpan", RemoveSpanAroundCursor"
and "RemoveCustomTagAroundCursor".
-
Bugfix: Copying to the clipboard resulted in the document's character encoding
being set to "UTF-8".
Build 91 (July 18, 2008)
-
Added support for a number of character encodings: utf-8, iso-8859-1, iso-8859-2,
iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9,
iso-8859-13, iso-8859-15, ibm-852, ibm-855, ibm-860, ibm-880, cp-866, koi8-r,
windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255,
windows-1256, windows-1257 and windows-1258.
-
Added the published property "Charset". The value of this property is
relevant during loading and saving of documents. When a document containing a
character encoding definition is loaded (i.e. a meta tag specifying a content
type) then this character encoding is used for loading. Otherwise the value of
the "Charset" property is used for loading. If Charset does not specify
a known character encoding then the system's active codepage is used for loading.
-
Background images for the BODY-element can now also be declared in class styles
as well as in the start tag's "style" attribute.
-
Added support for background images in elements other than the BODY-element, e.g.
in paragraphs, DIVs, tables, lists, etc. Background images can be specified using
the CSS attribute "background-image", e.g. "<p style="background-image:url('myimage.bmp')">".
-
The property "CurrentTable.ColWidth" is now writable.
-
Optimized painting speed.
-
Optimized saving speed.
-
Bugfix: The presence of a doctype-tag could result in document loading errors
under certain circumstances.
-
Bugfix: If the stylesheet embedded in the document contained certain characters
then the code generator created HTML character references instead of storing the
characters in normal form. Double quote characters, for example, were stored using
the character entity reference """. Certain CSS attribute values
can contain double quote characters. An example would be the CSS attribute "background-image".
Due to this bug browsers were unable to interpret the generated CSS attribute
values containg character references.
-
Background image URLs could not be enclosed in single quotes (e.g. "background-image:url('X')").
-
Bugfix: The document title element was not parsed properly.
-
Bugfix: Meta tags can be accessed using the properties "MetaTags.ContentByName"
and "MetaTags.ContentByHttpEquiv". The values of the "name"
and "http-equiv" attributes are case-insensitive but the property getter
and setter methods performed case-sensitive searches. This could result in duplicate
meta tags as well as "missing" meta tags if the same tag with different
case was used.
-
Bugfix: Fixed a bug in the style subsystem that could cause an invalid pointer
operation under obscure circumstances.
Build 90 (June 2, 2008)
-
The property "CurrentTable.TableTag" that was introduced in the last
build is now writable (or rather, the tag it represents can be modified).
-
The new property "CurrentTable.ColWidth[]" provides access to the width
of a given column.
-
The new property "CurrentDocumentHeight" returns the current body height
measured in pixels.
-
Added support for the CSS attribute "line-height". This attribute let's
you control the height of a line of text and thus the distance between lines of
text. Different types of values are supported: "normal", percentages,
factors and lengths. A length can be specified in one of the length units "em",
"ex", "px", "in", "cm", "mm",
"pt" and "pc". Two examples: "line-height:200%"
and "line-height:14pt".
-
The new property "CurrentBlock.StyleAttribute" provides access to individual
CSS attributes that are part of the current block's start tag.
-
Bugfix: When the data-aware version of the control was manually created at runtime
then the default document was loaded as soon as the user entered the control (for
example by left-clicking the control). This is not desired because at this point
in time a document could alrady have been loaded from a database.
-
Bugfix: The property "CurrentBlock.Style" did not provide access to
CSS attributes with unknown names.
Build 89 (April 7, 2008)
-
The new property "CurrentTable.TableTag" can be used to inspect the
current table's opening tag.
-
When creating a new span using, for example, the method "PutSpanAroundSelection"
then an already existing adjacent span will be expanded if the existing span is
of the same type as the span to be created. The effect is that the resulting HTML
is more optimized (i.e. cleaner, shorter, more efficient).
-
Bugfix: Selecting the entire document (by pressing <ctrl>-<a>, for
instance) and deleting the selection (by pressing <backspace> or <delete>)
could result in an access violation.
-
Bugfix: A number of infrequently used quote characters were not recognized as
characters separating words. This had the effect that the spellchecker recognized
a word as misspelled if it was surrounded by such quote characters even if the
word was correctly spelled. The following quote characters were added: a simple
quote ('), left+right single quote, single low-9 quote, left+right double quote,
double low-9 quote and single left+right-pointing angle quote.
-
Bugfix: The alternate text of an image (the text contained in the image tag's
"alt" attribute) is shown in the form of a hint when the mouse cursor
hovers over the image. If the user changed the alternate text without causing
a relayout of the document then the previous alternate text (or none) got shown.
-
Bugfix: Tables that are part of a selection were not deleted under certain conditions
if the selection got deleted.
Build 88 (March 14, 2008)
-
Bugfix: Converting a block into a list item destroyed the structure of the surrounding
table if the table cell left to or right to the current table cell contained a
list of the same type on the same nesting level.
-
Bugfix: During transition from 8-bit to 16-bit characters an error was introduced
during parsing. Under certain condition tab characters were not correctly replaced
with non-breaking spaces.
-
Bugfix: Deleting all characters between a table-tag and the block-tag of the block
enclosing the table resulted in an invalid caret position. The user could move
the caret to another position using the mouse but entering text did not have an
effect and navigation with the keyboard did not work.
-
Bugfix: After moving or resizing an image (generally speaking after a document
layout) the document was sometimes scrolled to the previous insert position rather
than the insert position the user chose by clicking somewhere into the text. From
the perspective of the user this was confusing because the user, for example,
moved an image, then clicked somewhere into the text but the cursor did not move
there but instead the document was scrolled to the old cursor position.
-
Bugfix: Dropping an image at a new location after scrolling the document during
dragging the image caused the image not to be repainted at the new location.
-
Bugfix: When the user dragged an image around (in order to move it to another
place) and caused the document to scroll during dragging (by moving the mouse
cursor beyond the upper or lower borders of the control) then the visual representation
of the document got messed up because the background of the image was not restored
properly.
-
Bugfix: During image resizing scrolling is now disabled.
-
Bugfix: When the user dropped an image in the middle of a block and then clicked
somewhere into the text in order to move the cursor there, the cursor did not
move there and instead moved behind the dropped image.
-
Bugfix: It was possible to insert a table when an image was selected. The table
got inserted at the last cursor position.
-
Bugfix: Fixed two device context resource leaks and four memory leaks.
Build 87
-
When pasting HTML from the clipboard in the form of UTF-8 then various characters
will be converted into the HTML codes according to the HTML code table.
-
The current block's style can now be changed programmatically. The property "CurrentBlock.Style"
was read-only. Now it is writable.
-
The method "RegisterKeyCommand" now lets you override commands for shortcuts
for which a command was already registered.
-
Increased the SmartTag thread dead-lock detection timeout from 5s to 20s.
-
If a table consists of only one column/row and the current column/row is deleted
then the entire table is deleted.
-
Bugfix: When a new span is put around one or more existing spans then the inner
spans are optimized. The optimization did not optimize well enough under some
circumstances.
-
Bugfix: Changing the current block's type could not be undone via "undo".
-
Bugfix: Fixed an assertion and an access violation that occurred in connection
with selections.
-
Bugfix: The pressing of <tab> did not insert the correct characters due
to an error introduced during implementation of support for 16-bit characters.
-
Bugfix: The demo application crashed at startup in the absence of a default printer.
-
Bugfix: List indentation (increase list indentation) did not work properly when
the liste item to be indented was preceded by whitespace characters.
-
Bugfix: Deleting selected content spanning more than one table cell affected the
table structure. Now only the selected content is deleted.
-
Bugfix: Moving in front of a table was not possible when the table was the first
element of a document.
-
Bugfix: The cursor was sometimes not moved to the correct place upon deleting
a table's current column.
Build 86
-
Comments can now be placed anywhere inside the BODY-element. Previously they were
ignored outside of block elements and sometimes even inside block elements.
-
Added support for hexadecimal numerical character references (e.g. "€").
-
Modified the parameter syntax of the method "DefineHTMLCode" to accomodate
for 16bit-characters. See the method's documentation.
-
"™" now resolves to #8482 instead of #153.
-
Added support for various entities that are resolved to 16-bit characters including
"‘", "Œ", "œ", "Š",
"š", "Ÿ", "ˆ", "˜",
" ", " ", " ", "‌",
"‍", "‎", "‏", "–",
"—", "‘", "’", "‚",
"“", "”", "„", "†",
"‡", "…", "‰",
"‹", "›" and "€".
-
Bugfix: Blocks which had the background color "transparent" were not
painted correctly under certain circumstances. With ClearType enabled, text would
become fatter and selection visualizations were not removed properly. This happened,
for example, in the case of tables with transparent TD-elements.
-
Bugfix: If a table cell contained sub-blocks and the cursor was automatically
moved to the beginning of the cell due to an operation like "delete table
column" then the content of sub-blocks was treated as cell content and the
blocks were ignored during rendering.
-
Bugfix: When a table cell containing the caret is removed then the caret is moved
to the first editing position in another cell. Earlier, sub-blocks belonging to
the new cell were ignored for determining the new editing position.
-
Bugfix: Set the border width of UL and OL elements in the hardcoded stylesheet
to zero. Earlier, such elements inherited border widths from parent elements.
This would result in lists with border in tables, for example.
-
Bugfix: Copying a selection to the clipboard in HTML format using custom tags
could result in unnecessary data being copied to the clipboard.
|
|
|
|
|